require('dotenv').config();
const AdminModel = require('../models/adminModel');

async function createAdmin() {
  try {
    // 从环境变量获取管理员用户名和密码
    const username = process.env.ADMIN_USERNAME || 'admin';
    const password = process.env.ADMIN_PASSWORD || 'admin123';
    
    console.log(`准备创建/更新管理员用户: ${username}`);
    
    // 先尝试查找用户
    const existingAdmin = await AdminModel.findByUsername(username);
    
    if (existingAdmin) {
      console.log(`用户 ${username} 已存在，更新密码...`);
      // 更新密码
      const result = await AdminModel.updatePassword(existingAdmin.id, password);
      console.log('密码更新结果:', result);
      console.log('管理员用户密码更新成功:');
      console.log(`用户名: ${username}`);
    } else {
      console.log(`用户 ${username} 不存在，创建新用户...`);
      // 创建管理员用户
      const admin = await AdminModel.create(username, password);
      
      console.log('管理员用户创建完成，返回结果:');
      console.log(admin);
      
      if (admin && admin.id) {
        console.log('管理员用户创建成功:');
        console.log(`用户名: ${admin.username}`);
        console.log(`用户ID: ${admin.id}`);
      } else {
        console.log('管理员用户创建可能失败，未返回有效ID');
      }
    }
    
    console.log('\n请确保在生产环境中修改默认密码!');
  } catch (error) {
    console.error('创建/更新管理员用户失败:', error);
  }
}

createAdmin();